// 用户类型
export interface User {
  id: string;
  username: string;
  password: string; // 加密后的密码
  isAdmin: boolean;
  createdAt: string;
}

// 分类类型（树形结构）
export interface Category {
  id: string;
  name: string;
  parentId: string | null;
  path: string; // 完整路径，如 "小学/一年级/上学期/单元1"
  level: number; // 层级：0-根分类，1-小学/初中/高中/大学，2-年级，3-学期，4-单元...
  children?: Category[];
}

// 单词类型
export interface Word {
  id: string;
  english: string;
  phonetic?: string; // 音标
  chinese: string;
  categoryId: string; // 兼容字段：首个所属分类ID
  categoryIds?: string[]; // 所属分类ID集合（多选）
  createdAt: string;
  senses?: WordSense[]; // 词性+释义集合
}

export interface PartOfSpeech {
  id: string; // 唯一ID
  key: string; // 简码，如 n/v/adj/adv 等
  name: string; // 显示名称，如 名词/动词/形容词
  englishName?: string; // 英文全称
  description?: string; // 说明
}

export interface WordSense {
  posId: string; // 关联的词性ID
  definitions: string[]; // 该词性下的多个释义
}

// 挑战记录类型
export interface ChallengeRecord {
  id: string;
  userId: string;
  categoryId: string;
  questions: Question[];
  score: number; // 得分 (0-10)
  timeSpent: number; // 耗时（秒）
  points: number; // 积分 = 得分 * 100 - 耗时
  createdAt: string;
}

// 题目类型
export type QuestionType = 'en-to-cn' | 'cn-to-en' | 'fill-in';

export interface Question {
  wordId: string;
  type: QuestionType; // 题目类型
  question: string; // 问题（英文或中文提示）
  options?: string[]; // 选项（填空题为空）
  correctAnswer: string; // 正确答案
  userAnswer?: string; // 用户答案
  isCorrect?: boolean; // 是否正确
  maskedWord?: string; // 填空题的部分英文
  hint?: string; // 额外提示
}

// 排行榜类型
export interface LeaderboardEntry {
  userId: string;
  username: string;
  points: number;
  bestScore: number;
  bestTime: number;
  totalChallenges: number;
}

